jquery教程

推荐列表 站点导航

当前位置:首页 > jquery > jquery教程 >

细说 jQuery 事件篇(五) 事件的移除和重绑定

来源:网络整理  作者:  发布时间:2020-12-21 06:58
jquery中文网为您提供细说 jQuery 事件篇(五) 事件的移除和重绑定等资源,欢迎您收藏本站,我们将为您提供最新的...
此时先点击 div 后,再点击 button,背景色改变失效,但 alert,仍然生效。

添加一个 default 按钮:

$('button').on('click.changeBgColor', function() { $('div').addClass('blue'); }); $('button').on('click.justAlert', function() { alert('I want to change color!'); }); $('div').click(function() { $('button').off('click.changeBgColor'); });

第一个事件处理程序我们添加附加信息,命名为 changeBgColor,第二个则命名为 justAlert。当点击 button 按钮后我们只移除 changeBgColor 相关的事件处理程序。
div { width: 200px; height: 200px; border: 1px solid #ccc; } .blue { background-color: blue; }

jquery 代码:

移除处理程序

假设有个 div 和 button,当我们点击 button 时即改变 div 的背景色,当如果我们点击 div 本身则移除 button 上的 click 事件处理程序。

细说 jQuery 事件篇(五) - 事件的移除和重绑定

$('button').click(function() { $('div').addClass('blue');//添加样式 }); $('button').click(function() { alert('change color!'); }); $('div').click(function() { $('button').off('click'); });

这里为了区分两个不同的处理程序,特意将 addClass 和 alert 过程分开来写。
当直接点击 button 按钮时,div 背景色发生改变,同时弹出 alert 框。

var changeBgColor = function() { $('div').addClass('blue'); }; var justAlert = function() { alert('I want to change color!'); }; $('button#change').on('click.changeBgColor', changeBgColor); $('button#change').on('click.justAlert', justAlert); $('div').click(function() { $('button#change').off('click.changeBgColor'); }); $('button#default').click(function() { $('button#change').on('click', changeBgColor); });

此时,如果我们先点击 div 后,再点击 change 按钮,修改背景色失效,但如果我们再点击 default 按钮,修改背景色的事件处理程序被重新绑定到 change 按钮的 click 事件中。

事件重绑定

我们添加一个 default 按钮,当点击 default 按钮后,所有的事件的处理程序又被重新绑定回来。为了能重复使用事件处理程序过程,我们需要使用一个匿名函数表达式来将其赋值给一个局部变量。

如果我们需要移除已经注册的事件处理程序,使某些处理程序失效。一种做法是在事件处理程序中使用条件语句进行判断,另一种更彻底的做法就是直接移除该处理程序。

如果我们提前点击 div 后,使用 .off() 方法移除 button 按钮上的 click 事件处理程序。 此时再点击 button 按钮,click 事件处理程序不再生效。

这里需要使用 .on() 方法。
事件命名空间其实就是在绑定事件处理程序时加入一些附加信息,用来识别特定的处理程序。
<div></div> <button>changeBgColor</button> <button>default</button>

修改 jQuery 代码如下:

使用 on 方法修改上例中的 jQuery 代码如下:

<div></div> <button>changeBgColor</button>

样式:

移除特定的处理程序

在上例中,使用 off 方法移除了 button 按钮 click 事件内的所有的处理程序,但如果我们只想移除改变背景色的处理程序,同时保留 alert 处理程序的话,就需用使用事件命名空间。

相关热词: jquery

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/jq/jc/6528.shtml

最新文章
PHP识别相片是否是颠倒的 PHP识别相片是否是颠倒的

时间:2020-12-28

python编程有哪些ide python编程有哪些ide

时间:2020-12-28

python开发工程师是做什么 python开发工程师是做什么

时间:2020-12-28

php构造函数的作用 php构造函数的作用

时间:2020-12-28

php怎么跟数据库连接 php怎么跟数据库连接

时间:2020-12-28

php实现顺序线性表 php实现顺序线性表

时间:2020-12-28

Python多重继承中的菱形继 Python多重继承中的菱形继

时间:2020-12-28

php中break的作用 php中break的作用

时间:2020-12-28

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

细说 jQuery 事件篇(五) 事件的移除和重绑定

2020-12-21 编辑:

此时先点击 div 后,再点击 button,背景色改变失效,但 alert,仍然生效。

添加一个 default 按钮:

$('button').on('click.changeBgColor', function() { $('div').addClass('blue'); }); $('button').on('click.justAlert', function() { alert('I want to change color!'); }); $('div').click(function() { $('button').off('click.changeBgColor'); });

第一个事件处理程序我们添加附加信息,命名为 changeBgColor,第二个则命名为 justAlert。当点击 button 按钮后我们只移除 changeBgColor 相关的事件处理程序。
div { width: 200px; height: 200px; border: 1px solid #ccc; } .blue { background-color: blue; }

jquery 代码:

移除处理程序

假设有个 div 和 button,当我们点击 button 时即改变 div 的背景色,当如果我们点击 div 本身则移除 button 上的 click 事件处理程序。

细说 jQuery 事件篇(五) - 事件的移除和重绑定

$('button').click(function() { $('div').addClass('blue');//添加样式 }); $('button').click(function() { alert('change color!'); }); $('div').click(function() { $('button').off('click'); });

这里为了区分两个不同的处理程序,特意将 addClass 和 alert 过程分开来写。
当直接点击 button 按钮时,div 背景色发生改变,同时弹出 alert 框。

var changeBgColor = function() { $('div').addClass('blue'); }; var justAlert = function() { alert('I want to change color!'); }; $('button#change').on('click.changeBgColor', changeBgColor); $('button#change').on('click.justAlert', justAlert); $('div').click(function() { $('button#change').off('click.changeBgColor'); }); $('button#default').click(function() { $('button#change').on('click', changeBgColor); });

此时,如果我们先点击 div 后,再点击 change 按钮,修改背景色失效,但如果我们再点击 default 按钮,修改背景色的事件处理程序被重新绑定到 change 按钮的 click 事件中。

事件重绑定

我们添加一个 default 按钮,当点击 default 按钮后,所有的事件的处理程序又被重新绑定回来。为了能重复使用事件处理程序过程,我们需要使用一个匿名函数表达式来将其赋值给一个局部变量。

如果我们需要移除已经注册的事件处理程序,使某些处理程序失效。一种做法是在事件处理程序中使用条件语句进行判断,另一种更彻底的做法就是直接移除该处理程序。

如果我们提前点击 div 后,使用 .off() 方法移除 button 按钮上的 click 事件处理程序。 此时再点击 button 按钮,click 事件处理程序不再生效。

这里需要使用 .on() 方法。
事件命名空间其实就是在绑定事件处理程序时加入一些附加信息,用来识别特定的处理程序。
<div></div> <button>changeBgColor</button> <button>default</button>

修改 jQuery 代码如下:

使用 on 方法修改上例中的 jQuery 代码如下:

<div></div> <button>changeBgColor</button>

样式:

移除特定的处理程序

在上例中,使用 off 方法移除了 button 按钮 click 事件内的所有的处理程序,但如果我们只想移除改变背景色的处理程序,同时保留 alert 处理程序的话,就需用使用事件命名空间。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/jq/jc/6528.shtml

相关文章

风云图片

推荐阅读

返回jquery教程频道首页